package q141

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func hasCycle(head *ListNode) bool {
	cache:=map[*ListNode]bool{}
	for{
		if head==nil{
			break
		}
		if _,ok:=cache[head];ok{
			return true
		}
		cache[head]=true
		head=head.Next
	}
	return false
}